package com.disability_federation.interceptor;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            // 对于 OPTIONS 请求，返回预检响应并允许所有源和方法
            response.setHeader("Access-Control-Allow-Origin", "*"); // 允许所有源
            response.setHeader("Access-Control-Allow-Methods", "*"); // 允许所有方法（虽然这不是标准用法，但某些浏览器可能接受）
            response.setHeader("Access-Control-Allow-Headers", "Token,Content-Type"); // 允许携带 Token 字段和其他可能需要的头
            response.setHeader("Access-Control-Max-Age", "3600"); // 预检请求的有效时间（秒），可按需调整
            response.setStatus(HttpServletResponse.SC_OK); // 设置响应状态码为 200 OK
            return false; // 通常 OPTIONS 请求在 HandlerInterceptor 中处理完毕后不继续执行后续拦截器或处理器
        }
        return true;
    }

}
